/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Dao;

import Pojo.Disciplina;
import Pojo.Professor;
import Pojo.Turma;
import java.util.List;

/**
 * Interface Dao para Turma
 * @author thiago
 */
public interface TurmaDao {
    
    /**
     * Método para inserir uma turma
     * @param professor
     * @return 
     */
    public boolean inserir(Turma turma);
    
    /**
     * Método para remover uma turma
     * @param professor
     * @return 
     */
    public boolean remover(Turma turma);
    
    /**
     * Método para alterar uma turma já cadastrada
     * @param professor
     * @return 
     */
    public boolean alterar(Turma turma);
    
    /**
     * Pesquisar turmas lecionadas por um professor
     * @param professor
     * @return 
     */
    public List<Turma> pesquisarPorProfessor(Professor professor);
    
    /**
     * Pesquisar turmas passando disciplina, o ano e o período
     * @param professor
     * @param ano
     * @param periodo
     * @return 
     */
    public List<Turma> pesquisarPorDisciplinaAnoPeriodo(Disciplina disciplina, int ano, int periodo);

    /**
     * Pesquisar turmas passando disciplina
     * @param disciplina
     * @param ano
     * @param periodo
     * @return 
     */
    public List<Turma> pesquisarPorDisciplina(Disciplina disciplina);
    
    /**
     * Pesquisar turmas abertas.
     * @param turma
     * @return 
     */
    public List<Turma> pesquisarTurmasAbertas();
    
    /**
     * Pesquisar turmas passando o id
     * @param id
     * @return 
     */
    public Turma pesquisarPorId(int id);
}
